import Vue from 'vue'
import App from './App.vue'

//引入路由配置文件
import router from '@/router'

//引入全局组件
//引入三级联动组件
import TypeNav from '@/components/TypeNav'
//引入轮播图组件
import Carousel from '@/components/Carousel'
//引入分页器组件
import Pagination from '@/components/Pagination'

//引入仓库
import store from '@/store'

//引入mockServer.js--moc数据
import '@/mock/mockServer'

//引入swiper样式，多个组件涉及轮播图，因此样式均会使用到
import 'swiper/css/swiper.css'

//统一引入接口文件
import * as API from '@/api'

//引入elementUI
import { Button, MessageBox } from 'element-ui'

//引入图片懒加载
import VueLazyload from 'vue-lazyload'
//引入懒加载图片
import lazyImg from '@/assets/images/0192975c6be054a801203d22829ad8.jpg'

//引入表单验证插件
import '@/plugins/validate'
Vue.use(VueLazyload, {
    loading: lazyImg
})

Vue.config.productionTip = false

//测试接口
//reqCategoryList();

//注册全局组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination)

//配置ElementUI组件
//全局配置
Vue.component(Button.name, Button);
//配置在原型上
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

new Vue({
    render: h => h(App),
    router,
    store,
    beforeCreate() {
        // 配置全局事件总线
        Vue.prototype.$bus = this;
        // 配置api，统一引入接口请求函数
        Vue.prototype.$API = API;
    }
}).$mount('#app')